package com.shycloud.mido.music.vo;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.shycloud.mido.music.domain.MisMusic;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;

import java.math.BigDecimal;
import java.util.Date;
import java.util.Objects;

/**
 * @author nianhua.jiang
 * @description 曲目VO
 * @date 2020/6/12
 */
@Data
public class MisMusicVO implements Comparable<MisMusicVO> {


	@TableId(value = "id", type = IdType.INPUT)
	private Integer id;

	/**
	 * 所属曲集ID
	 */
	@TableField(value = "collection_id")
	private Integer collectionId;

	/**
	 * 曲目名称
	 */
	@TableField(value = "name")
	private String name;

	/** 曲目别名 */
	@TableField(value = "music_alias")
	private String musicAlias;

	/** 排序 */
	@TableField(value = "sort")
	private String sort;

	/** 卡拉钢琴状态（0-否 1-是（伴奏）） */
	@TableField(value = "kala_status")
	private String kalaStatus;

	/** 曲目状态（0：禁用，1：启用） */
	@TableField(value = "status")
	private String status;

	/**
	 * 是否置顶（0：未置顶，1：置顶）
	 */
	@TableField(value = "top_flag")
	private String topFlag;

	/**
	 * 会员权限（0：无会员权限，1：有会员权限）
	 */
	@TableField(value = "member_authority")
	private String memberAuthority;

	/**
	 * MV/MP4 文件
	 */
	@TableField(value = "mv_file")
	private String mvFile = "0";

	public String getMvFile() {
		return mvFile;
	}

	public void setMvFile(String mvFile) {

		//mv文件部位空代表此曲目有MV，返回 1
		if (StrUtil.isNotBlank(mvFile)) {
			this.mvFile = "1";
		}
	}

	/** MP3文件 */
	@TableField(value = "mp3_file")
	private String mp3File = "0";

	/** 伴奏起始时间 */
	@TableField(value = "kala_start_time")
	private Integer kalaStartTime;

	/** 伴奏速度 */
	@TableField(value = "kala_speed")
	private Integer kalaSpeed;

	public String getMp3File() {
		return mp3File;
	}

	public void setMp3File(String mp3File) {

		//mv文件部位空代表此曲目有MV，返回 1
		if (StrUtil.isNotBlank(mp3File)) {
			this.mp3File = "1";
		}
	}

	/**
	 * 更新人
	 */
	@TableField(value = "create_user")
	private String createUser;

	/**
	 * 更新时间
	 */
	@TableField(value = "create_time")
	private Date createTime;

	/**
	 * 更新人
	 */
	@TableField(value = "update_user")
	private String updateUser;

	/**
	 * 更新日期
	 */
	@TableField(value = "update_time")
	private Date updateTime;

	/**
	 * 逻辑删除（0：未删除，1：已删除）
	 */
	@TableField(value = "del_flag")
	private String delFlag;


	/** 曲集名称 */
	public String collectionName;
	/** 曲集封面 */
	public String collectionImg;
	/** 是否收藏 */
	private Boolean isSave = false;

	public Boolean getIsSave() {
		return isSave;
	}

	public void setIsSave(String isSave) {
		if (StrUtil.isNotBlank(isSave)) {
			this.isSave = true;
		} else {
			this.isSave = false;
		}
	}

	/** 词频 */
	private BigDecimal frequency = BigDecimal.ZERO;

	@Override
	public int compareTo(MisMusicVO musicVO) {
		return musicVO.getFrequency().compareTo(this.getFrequency());
	}
}
